﻿#include<iostream>
#include<vector>
using namespace std;

//引用的方式传入会很快
vector<int> add(vector<int>& A, vector<int>& B)
{
	vector<int>C;
	int temp = 0;  //临时变量，存放每位的值和进位的值
	for (int i = 0; i < A.size() || i < B.size(); i++)
	{
		if (i < A.size())temp += A[i];
		if (i < B.size())temp += B[i];
		C.push_back(temp % 10);
		temp /= 10;  // 等价于 temp = temp / 10;
	}
	//当计算两个数最后一位的和时，相加>=10时，取模等于1，即在最高位补1
	if (temp)C.push_back(1);
	return C;
}
int main() 
{
	string a, b;
	vector<int>A, B;
	cin >> a >> b;

	/*size() - 1的原因:
	假设数组有8位，即存放的8个数，第8个数的下标为7，
	访问第8个数，a[7]便可访问*/
	for (int i = a.size() - 1; i >= 0; i--)
		A.push_back(a[i] - '0');	//通过-'0',可以将string类型的数字转换成int类型
	for (int i = b.size() - 1; i >= 0; i--)
		B.push_back(b[i] - '0');
	
	//auto被定义为自动推断变量的类型
	auto C = add(A, B);  //等价于vector<int> C = add(A,B); 

	cout << "11111111" << endl;
	for (int i = C.size() - 1; i >= 0; i--)
		cout << C[i];

	system("pause");
	return 0;
};
